package com.demo.services;

import com.demo.model.User;

/**
 * @Author quan
 * @Description 3-定义Service接口
 * @Date 2023/8/10 9:32
 */
public interface IUserService {
    /**
     * 根据用户名查询用户信息
     * @param username 用户名
     * @return 对应的用户
     */
    User selectByName(String username);

    /**
     * 创建普通用户：调用insert方法
     * @param user 用户信息
     */
    void createNormalUser(User user);

    /**
     * 用户登录：直接调用通过用户名查询用户信息的接口
     * @return
     */
    User login(String username,String password);

    /**
     * 通过传入的用户Id查询对应的用户信息
     * @param id 用户Id
     * @return User
     */
    User selectById(Long id);

    /**
     * 用户中的帖子属性+1
     * @param id 要更新的用户Id
     */
    void addOneArticleCountById(Long id);

    /**
     * 用户中的帖子属性-1
     * @param id 要更新的用户Id
     */
    void subOneArticleCountById(Long id);

    /**
     * 修改当前登录用户的信息
     * @param user 要修改的用户信息（包含6个字段）
     */
    void modifyInfo(User user);

    /**
     * 修改密码
     * @param id 用户id
     * @param newPassword 旧密码
     * @param oldPassword 新密码
     */
    void modifyPassword(Long id,String oldPassword,String newPassword);

}
